Managing Storage for Multithreaded Computations
نویسندگان
چکیده
Multithreading has become a dominant paradigm in general purpose MIMD parallel computation. To execute a multithreaded computation on a parallel computer, a scheduler must order and allocate threads to run on the individual processors. The scheduling algorithm dramatically a ects both the speedup attained and the space used when executing the computation. We consider the problem of scheduling multithreaded computations to achieve linear speedup without using signi cantly more space-per-processor than required for a single-processor execution. We show that for general multithreaded computations, no scheduling algorithm can simultaneously make e cient use of space and time. In particular, we show that there exist multithreaded computations such that any execution schedule X that achieves P -processor execution time TP (X ) T1= , where T1 is the minimum possible serial execution time, must use space at least SP (X ) 1 4( 1) p T1 + S1, where S1 is the space used by an e cient serial execution. For such a computation, even achieving a factor of 2 speedup ( = 2) requires space proportional to the square root of the serial execution time. By restricting ourselves to a class of computations we call strict computations, however, we show that there exist schedulers that can provide both e cient speedup and use of space. Speci cally, we show that for any strict multithreaded computation and any number P of processors, there exists an execution schedule X that achieves time TP (X ) T1=P + T1, where T1 is a lower bound on execution time even for arbitrarily large numbers of processors, and space SP (X ) S1P . We demonstrate such schedules by exhibiting a simple centralized algorithm to compute them. We give a second, somewhat more e cient, algorithm that computes equally good execution schedules; this algorithm is online and should be practical for moderate numbers of processors, but its use of a centralized queue makes it ine cient for large numbers of processors. To demonstrate an algorithm that is e cient even for large machines, we give a randomized, distributed, and online scheduling algorithm that computes an execution schedule X that achieves guaranteed space SP (X ) = O(S1P lg P ) and expected time E [TP (X )] = O(T1=P+T1 lg P ). Though this algorithm uses a lg P factor more space than the centralized algorithm, it can still achieve linear expected speedup | that is E [TP (X )] = O(T1=P ) | provided
منابع مشابه
A New Scheduling Algorithm for General Strict Multithreaded Computations
Three important performance parameters of scheduling algorithms for multithreaded computations on parallel computers are the required space, their execution time, and the communication cost incurred during the course of an execution; the rst is characterized by the amount of storage needed for an execution, the second is the total number of steps needed for executing all threads, while the last...
متن کاملParallel Multithreaded Processing for Data Set Summarization on Multicore CPUs
Data mining algorithms should exploit new hardware technologies to accelerate computations. Such goal is difficult to achieve in database management system (DBMS) due to its complex internal subsystems and because data mining numeric computations of large data sets are difficult to optimize. This paper explores taking advantage of existing multithreaded capabilities of multicore CPUs as well as...
متن کاملA Multithreaded Message Passing Environment for Atm Lan/wan 1
Large scale High Performance Computing and Communication (HPCC) applications (e.g. Video-on-Demand, and HPDC) would require storage and processing capabilities which are beyond existing single computer systems. The current advances in networking technology (e.g. ATM) have made high performance network computing an attractive computing environment for such applications. However, using only high ...
متن کاملMultithreaded approach for dynamic load balancing of parallel adaptive PDE computations
We present a multithreaded model for the dynamic load-balancing of parallel adaptive PDE computations. Multithreading is used as a means of exploring concurrency in the processor level and for tolerating: (i) long memory latencies, and (ii) synchronization costs inherent to traditional load-balancing methods. We show that under certain values of the parameters (i.e., number of threads, and cont...
متن کاملThe Design of an API for Strict Multithreading in C++
This paper deals with the design of an API for building distributed parallel applications in C++ which embody strict multithreaded computations. The API is enhanced with mechanisms to deal with highly irregular non-deterministic computations often occurring in the field of parallel symbolic computation. The API is part of the Distributed Object-Oriented Threads System DOTS. The DOTS environment...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1992